namespace FineCollection.Intf
{
    /// <summary>
    /// A list (write enabled).
    /// </summary>
    /// <typeparam name="T">type of an item.</typeparam>
    public interface WRandomList<T> : RRandomList<T>, WList<T>
    {

        /// <summary>
        /// Represents a quick writeable indexed access to the specified item.
        /// </summary>
        /// <remarks>
        /// The given index must be in [ FirstIndex .. LastIndex ] exclusively.
        /// </remarks>
        /// <param name="index">index of item to access.</param>
        /// <exception cref="CollectionIsEmpty">when the collection is empty.</exception>
        /// <exception cref="IndexOutOfBoundsException">when index is incorrect.</exception>
        /// <seealso cref="RRandomList{T}.FirstIndex"/>
        /// <seealso cref="RRandomList{T}.LastIndex"/>
        new T this[int index] { get; set; }

    }
}